package com.liming.user.service;

import com.liming.common.pojo.dto.PageDTO;
import com.liming.common.pojo.dto.product.MiniProductPageQuery;
import com.liming.common.pojo.vo.PageVO;
import com.liming.common.pojo.vo.product.CategoryVO;
import com.liming.common.pojo.vo.product.MiniProductDetailVO;
import com.liming.common.pojo.vo.product.MiniProductVO;

import java.util.List;

/**
 * @author liming
 * @date 2025/3/22
 */
public interface ProductService {

    /**
     * 推荐商品
     *
     * @return List<MiniProductVO>
     */
    List<MiniProductVO> recommend();

    /**
     * 商品详情
     *
     * @param id 商品id
     * @return MiniProductDetailVO
     */
    MiniProductDetailVO detail(Long id);

    /**
     * 分页 - 商品
     *
     * @param query 查询参数
     * @return 商品分页
     */
    PageVO<MiniProductVO> page(MiniProductPageQuery query);

    /**
     * 分页 - 商品分类查询参数
     *
     * @param page 分页参数
     * @return 分类分页
     */
    PageVO<CategoryVO> pageCategoryQuery(PageDTO page);
}
